﻿using System;
using System.Collections.Generic;

using System.Text;

namespace WeFeTeLib
{
    public class FrameworkFactory
    {
        public enum FrameworkType
        {
            CakePHP,
            TYPO3,
            CodeIgniter,
            FUSE,
            atomik,
            Kohana,
            Zope,
            Zend
        }

        public static Framework CreateTest(FrameworkType frameworkType)
        {
            switch (frameworkType)
            {
                case FrameworkType.CakePHP:
                    CakePHP.CakePHPFramework cakePHP = new CakePHP.CakePHPFramework();
                    return cakePHP;
                case FrameworkType.TYPO3:
                    TYPO3.TYPO3Framework typo3 = new TYPO3.TYPO3Framework();
                    return typo3;
                case FrameworkType.CodeIgniter:
                    CodeIgniter.CodeIgniterFramework codeIgniter = new WeFeTeLib.CodeIgniter.CodeIgniterFramework();
                    return codeIgniter;
                case FrameworkType.FUSE:
                    FUSE.FUSEFramework fuseFramework = new WeFeTeLib.FUSE.FUSEFramework();
                    return fuseFramework;
                case FrameworkType.atomik:
                    atomik.atomikFramework atomikFramework = new WeFeTeLib.atomik.atomikFramework();
                    return atomikFramework;
                case FrameworkType.Kohana:
                    Kohana.KohanaFramework kohanaFramework = new WeFeTeLib.Kohana.KohanaFramework();
                    return kohanaFramework;
                case FrameworkType.Zope:
                    Zope.ZopeFramework zopeFramework = new WeFeTeLib.Zope.ZopeFramework();
                    return zopeFramework;
                case FrameworkType.Zend:
                    Zend.ZendFramework zendFramework = new WeFeTeLib.Zend.ZendFramework();
                    return zendFramework;
                default:
                    throw new NotImplementedException("Unknow Framework!");
            } 
        }
    }
}
